| Предыдущая | Следующая | Оглавление | |
Flash Player 6.
myFunction.apply(thisObject:Object,argumentsArray:Array)
thisObject Объект, к которому применяется myFunction.
argumentsArray Массив, элементы которого передаются myFunction в качестве пераметров.
Любое значение, которое определяется вызываемой функцией.
Метод; указывает значение this, которое будет использовано внутри какой-либо функции, вызываемой в ActionScript. Этот метод также указывает параметры, передаваемые какой-либо вызываемой функции. Из-за того, что метод apply() является методом класса Function, он также является методом для каждого объекта Function в ActionScript.
Параметры указываются в виде объекта Array, в отличие от метода Function.call(), в котором параметры указываются в виде списка с разделяющими запятыми. Это часто бывает полезным, когда, во время исполнения скрипта, число передаваемых параметров неизвестно.
Следующие вызовы функций эквивалентны:
Math.atan2(1, 0) Math.atan2.apply(null, [1, 0])
Следующий простой пример демонстрирует как apply() передает массив с параметрами:
function theFunction() {
trace(arguments);
}
// создается новый массив для передачи в качестве параметра apply()
var firstArray:Array = new Array(1,2,3);
theFunction.apply(null,firstArray);
// выводит: 1,2,3
// создается второй массив для передачи в качестве параметра apply()
var secondArray:Array = new Array("a", "b", "c");
theFunction.apply(null,secondArray);
// выводит a,b,c
Следующий пример показывает как apply() передает массив параметров и задает значение для this:
// определение функции
function theFunction() {
trace("this == myObj? " + (this == myObj));
trace("arguments: " + arguments);
}
// задаем значение объекта
var myObj:Object = new Object();
// создаем массивы для передачи в качестве параметра apply()
var firstArray:Array = new Array(1,2,3);
var secondArray:Array = new Array("a", "b", "c");
// используем apply() для установки значения this, так, чтобы было myObj, и отправляем firstArray
theFunction.apply(myObj,firstArray);
// в окне output:
// this == myObj? true
// arguments: 1,2,3
// используем apply() для установки значения this, так, чтобы было myObj, и отправляем secondArray
theFunction.apply(myObj,secondArray);
// в окне output:
// this == myObj? true
// arguments: a,b,c
Function.call()
| Посмотреть комментарии LiveDocs | Предыдущая | Следующая | Оглавление | |